// #pragma GCC optimize("Ofast")
#define LC 1
#define LOCAL 1
#include<bits/stdc++.h>
#ifdef LC
#include "leetcode.h"
#endif
typedef long long ll;
using namespace std;

const ll mod = 1e9 + 7;
const int INF = 0x3f3f3f3f;
const ll llINF = 0x3f3f3f3f3f3f3f3fll;
#define REP(x, l, u) for(ll x = l;x<u;x++)
#define RREP(x, l, u) for(ll x = l;x>=u;x--)



string to_string(string s) { return '"' + s + '"'; }

string to_string(const char *s) { return to_string((string) s); }

string to_string(bool b) { return (b ? "true" : "false"); }

template<typename A, typename B>
string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; }

template<typename A>
string to_string(A v) {
    bool first = true;
    string res = "{";
    for (const auto &x: v) {
        if (!first) { res += ", "; }
        first = false;
        res += to_string(x);
    }
    res += "}";
    return res;
}

void debug_out() { cerr << endl; }

template<typename Head, typename... Tail>
void debug_out(Head H, Tail... T) {
    cerr << " " << to_string(H);
    debug_out(T...);
}

#ifdef LOCAL
#define dbg(...) cerr << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define dbg(...) do {} while(0)
#endif

template<typename T, typename S>
inline bool upmin(T &a, const S &b) { return a > b ? a = b, 1 : 0; }

template<typename T, typename S>
inline bool upmax(T &a, const S &b) { return a < b ? a = b, 1 : 0; }

ll MOD(ll a, ll m) {
    a %= m;
    if(a < 0)a += m;
    return a;
}
ll inverse(ll a, ll m) {
    a = MOD(a, m);
    if(a <= 1)return a;
    return MOD((1 - inverse(m, a) * m) / a, m);
}
ll gcd(ll a, ll b) {
    a = abs(a), b = abs(b);
    while(b != 0) {
        a %= b;
        swap(a, b);
    }
    return a;
}
ll fast(ll a, ll b, ll mod) {
    a %= mod;
    if(b < 0)a = inverse(a, mod), b = -b;
    ll ans = 1;
    while(b) {
        if(b & 1)ans = ans * a % mod;
        a = a * a % mod;
        b /= 2;
    }
    return ans % mod;
}
ll inv(ll a,ll m){
    return fast(a, mod - 2,mod);
}

struct node{
    int x,y,i,j;
};
class Solution {
    unordered_map<int,unordered_map<int,int>> mp;
    int dx[8] = {0,-1,-1,-1,1,1,0,1};
    int dy[8] = {1,1,-1,0,-1,1,-1,0};
    vector<pair<int,int>> vis;
public:
    string gobang(vector<vector<int>>& ps) {
        set<pair<int,int>> bc,wc;
        mp.clear();
        init(ps);
        countStep1(ps,0,bc);
        if(!bc.empty()){
            return "Black";
        }
        countStep1(ps,1,wc);
        if(wc.size() > 1){
            return "White";
        }else if(wc.size() == 1){
            auto fi = wc.begin();
            mp[fi->first][fi->second] = 0;
            ps.push_back({fi->first,fi->second});
            if(findTwoOrMorePath(fi->first,fi->second,0) > 1){
                return "Black";
            }
            return "None";
        }else{
            //bc 为空
            // 这里找有无一步成两个的
            // 有就是black otherwise white
            if(oneStep2(ps)){
                return "Black";
            }
            return "None";
        }
    }
    void init(vector<vector<int>>& ps){
        for(auto& p : ps){
            mp[p[0]][p[1]] = p[2];
        }
    }
    // color颜色一步能成的位置放进cnt中
    void countStep1(vector<vector<int>>& ps,int color,set<pair<int,int>>& cnt){
        int x,y,c;
        for(auto& p : ps){
            x = p[0],y = p[1],c = p[2];
            if(c != color)continue;
            for(int d = 0;d < 8;d++){
                // 负方向还有同样的点，之前肯定考虑过
                // 只有同色点没意义，不考虑
                if(get(x,y,d,-1) == c || get(x,y,d,1) != c){
                    continue;
                }
                bool skip = false;
                int spaceCnt = 0;
                int last = -1;
                for(int j = 2;j <= 4;j++){
                    int cj = get(x,y,d,j);
                    if(cj == !c){
                        skip = true;
                        break;
                    }else if(cj == -1){
                        last = j;
                        spaceCnt++;
                    }
                }
                if(skip || spaceCnt != 1){
                    continue;
                }
                // bb_bb
                if(last == 2){
                    cnt.insert({x + dx[d] * 2,y + dy[d] * 2});
                }
                // bbb_b
                else if(last == 3){
                    cnt.insert({x + dx[d] * 3,y + dy[d] * 3});
                }
                // bbbb_
                // _bbbb_ 或者_wwwww_算两次成法
                else if(last == 4){
                    cnt.insert({x + dx[d] * last,y + dy[d] * last});
                    if(get(x,y,d,-1) == -1){
                        cnt.insert({x + dx[d] * -1,y + dy[d] * -1});
                    }
                }
            }
        }
    }

    /**
     * <p>黑色两步能出，先找到黑色。你可以选择不看我的，暴力把八种方向的都考虑了，不需要排出黑色棋子个数不够，有空位就是候选者，
     * </p>
     * @param ps
     * @return
     */
    bool oneStep2(vector<vector<int>>& ps){
        int n = ps.size();
        set<pair<int,int>> cnt;
        for(int idx = 0;idx < n;idx ++){
            int x = ps[idx][0],y = ps[idx][1],c = ps[idx][2];
            if(c == 1){
                continue;
            }
            for(int d = 0;d < 8;d++){

                vector<int> v1(10),v2(10),v3(10),v;
                for(int time = -4;time <= 4;time++){
                    int a = get(x,y,d,time);
                    v1[time + 5] += v1[time + 4];
                    v2[time + 5] += v2[time + 4];
                    v3[time + 5] += v3[time + 4];
                    if(a == -1){
                        v1[time + 5] += 1;
                    }else if(a == 0){
                        v2[time + 5] += 1;
                    }else{
                        v3[time + 5] += 1;
                    }
                    v.push_back(a);
                }
                for(int k = 5;k <= 9;k++){
                    if(v3[k] - v3[k - 5] > 0 || v1[k] - v1[k - 5] != 2){
                        continue;
                    }
                    for(int l = k - 5;l < k;l++){
                        if(v[l] == -1){
                            cnt.insert({x + dx[d] * (l - 4),y + dy[d] * (l - 4)});
                        }
                    }
                }
            }
        }
        // TODO
        cout << cnt.size() << endl;
        // 所有将棋子加入进去，然后试试黑色有无两个点以上可以胜利的位置。
        for(const auto & it : cnt){

//            ps.push_back({it.first,it.second,0});
            mp[it.first][it.second] = 0;
            if(findTwoOrMorePath(it.first,it.second,0) > 1){
                return 1;
            }
            mp[it.first].erase(it.second);
        }

        return 0;
    }
    // 找出黑色可以胜利的位置的个数，超过1个就直接返回
    int findTwoOrMorePath(int x,int y,int color){
        set<pair<int,int>> sss;
        for(int d = 0;d < 4;d++){
            for(int left = -4;left <= 0;left ++){
                bool skip = false;
                int cnt = 0;
                int last = -1;
                int cnt2 = 0;
                for(int l = left;l <= left + 4;l++){
                    if(get(x,y,d,l) == 1)skip = true;
                    else if(get(x,y,d,l) == -1){
                        cnt ++;
                        last = l;
                    }else{
                        cnt2++;
                    }
                }
                if(skip || cnt != 1 || cnt2 != 4){
                    continue;
                }
                sss.insert({x + dx[d] * last,y + dy[d] * last});
                if(sss.size() > 1){
                    return 2;
                }
            }
        }
        return sss.size();
    }
    int get(int x,int y,int d,int time){
        int nx = x + dx[d] * time;
        int ny = y + dy[d] * time;
        if(mp.count(nx) && mp[nx].count(ny)){
            return mp[nx][ny];
        }
        return -1;
    }
};



struct SegTree{
    ll b[1000],d[1000],a[1000];
    void init(){
        memset(b,0,sizeof(b));
        memset(d,0,sizeof(d));
        memset(a,0,sizeof(a));
    }
    void build(ll l,ll r,ll p){
        if(l == r){
            d[p] = a[l];
            return;
        }
        ll m = l + ((r - l) >> 1);
        if(l <= m)build(l, m, p << 1);
        if(r > m)build(m + 1 ,r, p << 1 | 1);
        d[p] = d[p << 1] + d[p << 1 | 1];
    }
// L,R被修改的区域，l,r当前的区域
    void update(ll l,ll r,ll L,ll R,ll c,ll p){
        if(L <= l && r <= R){
            d[p] += (r - l + 1) * c;
            b[p] += c;
            return;
        }
        ll m = l + ((r - l) >> 1);

        if(b[p]){
            d[p << 1] += (m - l + 1) * b[p];
            d[p << 1 | 1] += (r - m) * b[p];
        }

        if(m >= L)update(l,m,L,R,c,p << 1);
        if(R > m)update(m + 1,r,L,R,c,p << 1 | 1);
        b[p] = 0;
        d[p] = d[p << 1] + d[p << 1 | 1];
    }

// L,R被查询的区域，l,r当前的区域
    ll getSum(ll l,ll r,ll L,ll R,ll p){
        ll ans = 0;
        if(L <= l && r <= R){
            return d[p];
        }
        ll m = l + ((r - l) >> 1);

        if(b[p]){
            d[p << 1] += (l - m + 1) * b[p];
            b[p << 1 | 1] += (r - m + 1) * b[p];
        }
        b[p] = 0;
        if(m >= L)ans += getSum(l,m,L,R,p << 1);
        if(R > m)ans += getSum(m + 1,r,L,R,p << 1 | 1);

        return ans;
    }
};

namespace SOLVE {
    void main() {
        string ss[] = {
                "[[4,1,1],[0,2,0],[9,2,1],[7,0,0],[0,5,0],[4,6,1],[9,9,0],[2,5,0],[4,3,1],[0,6,1],[9,6,1],[9,1,0],[2,1,0],[5,3,0],[5,4,1],[1,3,0],[3,3,0],[5,5,1],[4,7,1],[5,2,1],[2,9,1],[3,1,1],[1,8,0],[7,6,1],[9,7,0],[8,8,1],[0,7,1],[1,5,1],[4,2,0],[6,0,1],[5,9,0],[6,2,0],[4,0,0],[4,5,0],[3,2,0],[8,6,1],[2,8,0],[6,6,1],[0,9,0],[6,3,0],[5,0,0],[7,8,0],[0,1,1],[5,6,0],[7,4,0],[8,1,1],[2,7,1],[2,4,0],[3,4,1],[8,0,0],[8,3,0],[6,8,0],[4,8,0],[1,6,0],[8,2,0]]"
//                "[[3,1,0],[2,7,1],[9,4,0],[4,8,1],[7,2,0],[4,3,1],[2,2,0],[3,8,0],[8,2,1],[1,4,1],[8,4,1],[3,5,1],[7,7,0],[9,1,0],[0,3,0],[4,4,0],[1,7,1],[9,6,0],[8,7,0],[0,0,0],[5,5,0],[6,2,1],[4,5,1],[2,1,1],[8,0,1],[8,3,1],[4,2,1],[7,1,0],[6,0,1],[5,3,0],[7,0,0]]"
//                "[[0,0,0],[0,6,0],[1,1,0],[1,5,0],[3,0,1],[3,1,1],[3,2,1],[3,4,1],[4,2,0],[4,4,0],[3,-1,1]]"
//                "[[0,3,1],[1,2,1],[1,3,1],[2,0,0],[2,1,0],[2,4,0],[3,3,1],[3,4,0],[4,3,1],[4,5,0],[5,6,0]]"
//                "[[1,2,1],[1,4,1],[1,5,1],[2,1,0],[2,3,0],[2,4,0],[3,2,1],[3,4,0],[4,2,1],[5,2,1]]"
//                "[[-1000000000,-1000000000,0],[-999999999,-1000000000,0],[-999999998,-1000000000,0]]",
//                "[[-274445633,-743237332,1],[-274445631,-743237314,1],[-274445576,-743237344,0],[-274445590,-743237368,0],[-274445559,-743237316,1],[-274445580,-743237373,0],[-274445591,-743237397,1],[-274445587,-743237303,0],[-274445545,-743237315,0],[-274445566,-743237398,1],[-274445621,-743237306,1],[-274445605,-743237378,0],[-274445617,-743237374,1],[-274445580,-743237301,1],[-274445544,-743237357,1],[-274445578,-743237323,1],[-274445607,-743237303,1],[-274445630,-743237325,1],[-274445547,-743237394,0],[-274445631,-743237307,0],[-274445582,-743237313,0],[-274445575,-743237371,0],[-274445574,-743237368,0],[-274445622,-743237343,1],[-274445601,-743237363,0],[-274445584,-743237313,1],[-274445616,-743237383,1],[-274445589,-743237356,0],[-274445639,-743237346,0],[-274445562,-743237387,0],[-274445594,-743237377,1],[-274445573,-743237394,0],[-274445619,-743237390,1],[-274445620,-743237383,1],[-274445611,-743237387,1],[-274445559,-743237305,1],[-274445641,-743237383,0],[-274445586,-743237365,1],[-274445613,-743237341,0],[-274445590,-743237386,1],[-274445542,-743237315,0],[-274445560,-743237343,0],[-274445553,-743237391,0],[-274445637,-743237306,0],[-274445597,-743237391,0],[-274445568,-743237328,1],[-274445551,-743237326,0],[-274445623,-743237378,1],[-274445560,-743237315,1],[-274445550,-743237307,0],[-274445609,-743237368,0],[-274445610,-743237342,0],[-274445579,-743237320,1],[-274445571,-743237366,0],[-274445624,-743237374,1],[-274445608,-743237365,0],[-274445618,-743237366,1],[-274445635,-743237312,0],[-274445555,-743237391,1],[-274445614,-743237337,1],[-274445624,-743237334,1],[-274445614,-743237365,0],[-274445609,-743237301,0],[-274445597,-743237400,1],[-274445624,-743237308,1],[-274445582,-743237323,1],[-274445642,-743237379,0],[-274445563,-743237396,1],[-274445634,-743237383,1],[-274445604,-743237351,0],[-274445558,-743237337,1],[-274445593,-743237324,0],[-274445580,-743237367,1],[-274445580,-743237399,0],[-274445581,-743237396,0],[-274445580,-743237302,0],[-274445579,-743237319,0],[-274445592,-743237331,0],[-274445635,-743237303,0],[-274445590,-743237385,1],[-274445621,-743237346,0],[-274445602,-743237321,0],[-274445578,-743237360,1],[-274445577,-743237361,0],[-274445584,-743237366,1],[-274445625,-743237390,1],[-274445636,-743237317,1],[-274445557,-743237363,1],[-274445568,-743237316,1],[-274445590,-743237328,1],[-274445572,-743237341,0],[-274445553,-743237369,1],[-274445583,-743237385,0],[-274445576,-743237334,0],[-274445617,-743237303,1],[-274445619,-743237314,0],[-274445616,-743237350,1],[-274445569,-743237389,0],[-274445600,-743237354,0],[-274445635,-743237390,0],[-274445580,-743237380,1],[-274445556,-743237313,1],[-274445591,-743237308,1],[-274445638,-743237368,0],[-274445584,-743237330,1],[-274445543,-743237342,0],[-274445634,-743237365,1],[-274445593,-743237377,1],[-274445608,-743237391,0],[-274445588,-743237346,1],[-274445575,-743237389,1],[-274445632,-743237302,1],[-274445614,-743237331,0],[-274445559,-743237377,0],[-274445614,-743237322,0],[-274445618,-743237301,1],[-274445605,-743237373,0],[-274445592,-743237391,1],[-274445560,-743237316,0],[-274445616,-743237378,0],[-274445576,-743237307,0],[-274445543,-743237318,0],[-274445620,-743237340,0],[-274445626,-743237343,0],[-274445599,-743237345,1],[-274445590,-743237313,1],[-274445635,-743237326,1],[-274445607,-743237306,0],[-274445637,-743237355,0],[-274445571,-743237307,0],[-274445605,-743237340,0],[-274445562,-743237303,1],[-274445542,-743237359,1],[-274445638,-743237337,0],[-274445623,-743237342,1],[-274445631,-743237376,1],[-274445556,-743237399,0],[-274445560,-743237392,0],[-274445562,-743237392,0],[-274445553,-743237337,1],[-274445603,-743237302,0],[-274445543,-743237310,1],[-274445594,-743237374,1],[-274445544,-743237301,0],[-274445598,-743237381,0],[-274445552,-743237338,1],[-274445556,-743237309,0],[-274445565,-743237353,0],[-274445555,-743237366,0],[-274445602,-743237399,0],[-274445591,-743237300,0],[-274445632,-743237340,0],[-274445543,-743237384,0],[-274445636,-743237306,0],[-274445579,-743237372,0],[-274445623,-743237396,0],[-274445629,-743237336,0],[-274445620,-743237316,1],[-274445601,-743237314,1],[-274445543,-743237313,0],[-274445584,-743237307,1],[-274445563,-743237393,1],[-274445569,-743237306,0],[-274445613,-743237367,1],[-274445555,-743237355,0],[-274445578,-743237327,1],[-274445625,-743237321,0],[-274445550,-743237370,1],[-274445628,-743237374,0],[-274445578,-743237315,0],[-274445554,-743237344,1],[-274445609,-743237325,0],[-274445592,-743237306,1],[-274445603,-743237391,1],[-274445607,-743237308,1],[-274445560,-743237344,0],[-274445635,-743237317,1],[-274445554,-743237319,1],[-274445629,-743237311,0],[-274445633,-743237369,0],[-274445575,-743237379,0],[-274445546,-743237342,0],[-274445547,-743237378,1],[-274445548,-743237317,1],[-274445568,-743237382,1],[-274445633,-743237395,0],[-274445615,-743237353,0],[-274445595,-743237328,0],[-274445614,-743237304,0],[-274445547,-743237400,1],[-274445640,-743237349,1],[-274445558,-743237366,0],[-274445607,-743237356,0],[-274445583,-743237374,1],[-274445595,-743237395,1],[-274445578,-743237321,1],[-274445569,-743237379,0],[-274445567,-743237313,0],[-274445547,-743237321,1],[-274445582,-743237388,0],[-274445591,-743237302,1],[-274445620,-743237395,1],[-274445560,-743237395,0],[-274445634,-743237322,0],[-274445630,-743237397,1],[-274445593,-743237373,0],[-274445554,-743237395,1],[-274445619,-743237369,0],[-274445586,-743237346,0],[-274445548,-743237373,0],[-274445553,-743237323,1],[-274445552,-743237321,1],[-274445574,-743237383,0],[-274445578,-743237358,0],[-274445555,-743237371,1],[-274445544,-743237347,0],[-274445552,-743237383,1],[-274445627,-743237345,0],[-274445544,-743237356,0],[-274445591,-743237319,1],[-274445556,-743237352,1],[-274445618,-743237351,0],[-274445609,-743237345,1],[-274445608,-743237315,1],[-274445592,-743237317,0],[-274445632,-743237365,0],[-274445594,-743237366,1],[-274445599,-743237355,0],[-274445620,-743237313,0],[-274445597,-743237359,1],[-274445557,-743237317,1],[-274445614,-743237326,1],[-274445636,-743237321,1],[-274445604,-743237391,1],[-274445588,-743237350,0],[-274445597,-743237355,0],[-274445593,-743237307,1],[-274445564,-743237335,0],[-274445563,-743237389,1],[-274445576,-743237300,1],[-274445605,-743237350,1],[-274445575,-743237321,1],[-274445544,-743237304,0],[-274445563,-743237354,1],[-274445598,-743237326,0],[-274445570,-743237398,0],[-274445559,-743237381,1],[-274445600,-743237312,0],[-274445637,-743237332,0],[-274445568,-743237354,0],[-274445640,-743237325,1],[-274445565,-743237331,1],[-274445570,-743237369,1],[-274445542,-743237311,0],[-274445559,-743237357,0],[-274445592,-743237381,0],[-274445569,-743237392,0],[-274445615,-743237344,0],[-274445547,-743237384,1],[-274445564,-743237330,1],[-274445586,-743237382,1],[-274445624,-743237352,1],[-274445630,-743237311,0],[-274445601,-743237348,0],[-274445566,-743237344,0],[-274445571,-743237375,0],[-274445571,-743237341,1],[-274445618,-743237337,0],[-274445603,-743237335,1],[-274445639,-743237359,0],[-274445568,-743237307,1],[-274445604,-743237396,0],[-274445546,-743237363,1],[-274445594,-743237332,1],[-274445608,-743237325,1],[-274445568,-743237338,0],[-274445605,-743237357,0],[-274445578,-743237382,1],[-274445611,-743237369,1],[-274445625,-743237383,0],[-274445638,-743237379,0],[-274445573,-743237385,0],[-274445638,-743237356,1],[-274445637,-743237312,1],[-274445601,-743237300,1],[-274445593,-743237311,0],[-274445564,-743237374,1],[-274445599,-743237396,0],[-274445576,-743237331,1],[-274445580,-743237332,0],[-274445604,-743237342,0],[-274445624,-743237383,0],[-274445543,-743237323,1],[-274445582,-743237350,1],[-274445549,-743237391,1],[-274445604,-743237390,1],[-274445549,-743237300,1],[-274445613,-743237368,1],[-274445626,-743237361,0],[-274445586,-743237345,0],[-274445635,-743237360,1],[-274445606,-743237393,0],[-274445576,-743237322,1],[-274445548,-743237367,1],[-274445599,-743237389,1],[-274445611,-743237367,1],[-274445580,-743237359,1],[-274445629,-743237342,1],[-274445633,-743237314,0],[-274445580,-743237319,1],[-274445617,-743237342,1],[-274445560,-743237324,0],[-274445563,-743237311,1],[-274445605,-743237338,0],[-274445582,-743237325,1],[-274445564,-743237358,0],[-274445605,-743237301,1],[-274445555,-743237318,0],[-274445602,-743237319,1],[-274445630,-743237349,1],[-274445620,-743237364,1],[-274445597,-743237337,1],[-274445614,-743237309,0],[-274445637,-743237354,1],[-274445545,-743237338,1],[-274445568,-743237324,0],[-274445576,-743237308,0],[-274445602,-743237370,0],[-274445634,-743237330,1],[-274445574,-743237324,1],[-274445545,-743237348,0],[-274445625,-743237325,1],[-274445581,-743237361,1],[-274445567,-743237302,1],[-274445559,-743237363,0],[-274445638,-743237388,1],[-274445568,-743237343,0],[-274445587,-743237355,0],[-274445633,-743237302,0],[-274445635,-743237371,1],[-274445564,-743237332,0],[-274445545,-743237374,1],[-274445582,-743237335,1],[-274445642,-743237372,0],[-274445551,-743237398,1],[-274445636,-743237314,1],[-274445557,-743237373,0],[-274445566,-743237321,0],[-274445601,-743237321,0],[-274445559,-743237320,0],[-274445635,-743237395,0],[-274445580,-743237355,0],[-274445626,-743237370,1],[-274445615,-743237333,0],[-274445623,-743237364,0],[-274445566,-743237312,1],[-274445550,-743237346,0],[-274445638,-743237367,1],[-274445588,-743237331,1],[-274445612,-743237352,1],[-274445552,-743237378,1],[-274445549,-743237332,0],[-274445567,-743237345,1],[-274445618,-743237397,1],[-274445584,-743237342,0],[-274445589,-743237362,0],[-274445632,-743237309,0],[-274445584,-743237363,1],[-274445553,-743237387,1],[-274445594,-743237359,0],[-274445609,-743237337,0],[-274445590,-743237354,0],[-274445616,-743237343,0],[-274445641,-743237336,0],[-274445628,-743237355,0],[-274445567,-743237393,1],[-274445545,-743237381,1],[-274445628,-743237341,1],[-274445628,-743237363,0],[-274445609,-743237308,0],[-274445613,-743237379,1],[-274445587,-743237367,1],[-274445599,-743237375,1],[-274445635,-743237309,0],[-274445617,-743237318,0],[-274445592,-743237320,0],[-274445596,-743237396,1],[-274445608,-743237338,1],[-274445561,-743237330,1],[-274445580,-743237383,0],[-274445639,-743237385,1],[-274445621,-743237319,1],[-274445583,-743237383,0],[-274445584,-743237341,0]]",
//                "[[0,0,1],[1,1,1],[2,2,0]]",
//                "[[4,1,1],[0,2,0],[9,2,1],[7,0,0],[0,5,0],[4,6,1],[9,9,0],[2,5,0],[4,3,1],[0,6,1],[9,6,1],[9,1,0],[2,1,0],[5,3,0],[5,4,1],[1,3,0],[3,3,0],[5,5,1],[4,7,1],[5,2,1],[2,9,1],[3,1,1],[1,8,0],[7,6,1],[9,7,0],[8,8,1],[0,7,1],[1,5,1],[4,2,0],[6,0,1],[5,9,0],[6,2,0],[4,0,0],[4,5,0],[3,2,0],[8,6,1],[2,8,0],[6,6,1],[0,9,0],[6,3,0],[5,0,0],[7,8,0],[0,1,1],[5,6,0],[7,4,0],[8,1,1],[2,7,1],[2,4,0],[3,4,1],[8,0,0],[8,3,0],[6,8,0],[4,8,0],[1,6,0],[8,2,0]]"
        };
        string ans[] = {
                "None",
//                "Black",
//                "White"
        };
        Solution su;
        for(int i = 0;i < 1;i++){
            clock_t startTime = clock();
            vector<vector<int>> v = stringToIntegerVector2(ss[i]);
            string ret = su.gobang(v);
            cout << ret << ",but ans is " << ans[i] << endl;
            cout << "the program time is " << (double)(clock() - startTime) / CLOCKS_PER_SEC << "s" << endl;
        }
    }
}
int a = __builtin_ffs(1);
#define CForLOCAL
#ifdef CForLOCAL
int main(){
    ios::sync_with_stdio(false);cin.tie(nullptr);
#ifdef LOCAL
    freopen("1.txt","r",stdin);
#endif
    int t = 1;
    for(int i = 1;i <= t;i++){
//        cout<<"Case #"<<i<<": ";
        SOLVE::main();

    }
}
#endif